package com.ywyt.simple;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.ywyt.util.ConnUtil;
import org.junit.Test;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

public class SimpleProvider {
    public final static String QUEUE_NAME="simple_queue";
    @Test
    public void publish() throws IOException, TimeoutException {
        //1.获取连接对象
        Connection connection = ConnUtil.getConnection();
        //2.获取Channel
        Channel channel = connection.createChannel();
        //3.绑定队列
        /*
        * 参数一：队列名称
        * 参数二：是否持久化
        * 参数三：是否排外  -->只允许一个消费者消费，如果有其他消费者会抛出异常
        * 参数四：是否自动删除    -->如果没有消费者连接，直接删除队列
        * 参数五：设置queue其他参数
        * */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //4.发布消息
        /*
        * 参数一：exchange名称
        * 参数二：RoutingKey名称
        * 参数三：指定当前消息的其他属性
        * 参数四：消息
        * */
        String msg = "Hello World";
        channel.basicPublish("",QUEUE_NAME,null,msg.getBytes());
        //5.释放资源
        channel.close();
        connection.close();
    }
}
